package com.zw.syncopenapi.common;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;

/**
 * JsonFileReader -
 * Created by Jack on 2025/9/29.
 * Description:
 */
@Service
public class JsonFileReader {

    /**
     * 从绝对路径读取 JSON 文件并解析为 JSONArray
     * @param absolutePath 文件绝对路径（如 "E:\\data\\token.json"）
     * @throws IOException 文件读取失败时抛出
     * @throws JSONException JSON 解析失败时抛出
     */
    public  JSONArray readJsonFromAbsolutePath(String absolutePath) throws IOException, JSONException {
        // 1. 校验路径非空
        if (absolutePath == null || absolutePath.trim().isEmpty()) {
            throw new IllegalArgumentException("文件路径不能为空");
        }

        // 2. 读取文件内容（JDK 1.8 兼容写法）
        byte[] fileBytes = Files.readAllBytes(Paths.get(absolutePath));
        String jsonContent = new String(fileBytes, StandardCharsets.UTF_8);

        // 3. 移除 UTF-8 BOM 头（如果有）
        if (jsonContent.startsWith("\uFEFF")) {
            jsonContent = jsonContent.substring(1);
        }

        // 4. 解析为 JSONArray
        return JSONArray.parseArray(jsonContent);
    }
}
